/********************************************
 * 功能说明: 
 * 模块名称: 
 * 系统名称: 
 * 软件版权: 
 * 系统版本: 1.0.0
 * 开发人员: zhangfb
 * 开发时间: 2019/3/31 16:33
 * 审核人员: 
 * 相关文档: 
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.hyacinth.datasource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import java.sql.SQLException;

/**
 * Hikari连接池数据源
 * @author zhangfb
 * @version 1.0.0.1
 * @since JDK 1.8
 */
public class DataSource4Hikari extends BaseDataSource{

    @Override
    public void initDataSource(String driver, String url, String username, String password, int connPollSize) throws SQLException {
        // 常见Hikari配置
        HikariConfig config = new HikariConfig();
        config.setDriverClassName(driver);
        config.setJdbcUrl(url);
        config.setUsername(username);
        config.setPassword(password);

        config.setMaximumPoolSize(20);
        config.setMinimumIdle(10);
        config.setReadOnly(false);
        config.setConnectionTimeout(30000);
        config.setIdleTimeout(60000);
        config.setMaxLifetime(180000);
        // 设置自动提交
        config.setAutoCommit(true);

        this.dataSource = new HikariDataSource(config);
    }


    @Override
    public void closeDataSource() {
        HikariDataSource dataSource = (HikariDataSource) this.dataSource;
        dataSource.close();
    }
}
